An efficient 3-approximation algorithm for the Steiner tree problem with the minimum number of Steiner points and bounded edge length

We present improved algorithms for the Steiner tree problem with the minimum number of Steiner points and bounded edge length. Given n terminal points in a 2D Euclidean plane and an edge length bound, the problem asks to construct a spanning tree of n terminal points with minimal Steiner points such that every edge length of the spanning tree is within the given bound. This problem is known to be NP-hard and has practical applications such as relay node placements in wireless networks, wavelength-division multiplexing(WDM) optimal network design, and VLSI design. The best-known deterministic approximation algorithm has O(n3) running time with an approximation ratio of 3. This paper proposes an efficient approximation algorithm using the Voronoi diagram that guarantees an approximation ratio of 3 in O(n log n) time. We also present the first exact algorithm to find an optimal Steiner tree for given three terminal points in constant time. Using this exact algorithm, we improve the 3-approximation algorithm with better performance regarding the number of required Steiner points in O(n log n) time.


Introduction
In this paper, we present improved algorithms for the Steiner tree problem with the minimum number of Steiner points and bounded edge length (STP-MSPBEL) introduced by Lin and Xue [1].Given a set of n terminal points P = {p 1 , p 2 , . .., p n } in the two-dimensional Euclidean space R 2 and a positive constant R, STP-MSPBEL asks for a tree spanning a superset of P such that each edge in the spanning tree has a length no more than R and the number of points other than those in P, called Steiner points [2], is minimized [1].This problem has been applied to the relay node placement problem in wireless sensor networks [3,4].In monitoring sensor networks, connectivity among sensors is crucial for gathering information.Due to harsh environments like earthquakes, fires, or floods, a number of sensors can be simultaneously disabled.In this scenario, relay sensors are required to restore network connectivity.When the communication distance sets to R, STP-MSPBEL can be employed to recover the entire network at a low cost (with a minimal number of relay nodes).This problem also finds applications in wavelength-division multiplexing(WDM) optimal network design, VLSI design, and evolutionary/phylogenetic tree constructions in computational biology [1].
The classical Steiner tree problem, which aims to minimize the total length of the spanning tree, has been widely studied.This problem is NP-hard [5], and it is proven to be APX-hard, so it cannot be approximated within 96/95 in polynomial time unless p = np [6].A number of approximation algorithms have been proposed [7][8][9][10][11].The currently best-known approximation scheme achieved the approximation ratio of ln 4 + � � 1.39 using linear programming (LP) and iterative randomized rounding by Byrka et al. [7].Later, Chen and Hsieh [8] proposed an efficient two-phase heuristic in greedy strategy with an approximation ratio of 1.4295.Recently, Traub and Zenklusen [10] proposed the purely combinatorial approach providing the approximation ratio of ln4+ �, which is the same as the best-known approximation factor without solving an LP problem.Zhang et al. [11] presented a truthful-in-expectation mechanism that achieves the same approximation ratio.Berman et al. [12] presented a 1.25-approximation algorithm for the variation of the problem where a complete graph is given with edge lengths 1 and 2. Chen and Hsieh [10] analyzed the algorithm of Byrka et al. [7] and showed that it gives 1.162 + � approximation for the problem on complete graphs with edge distances 1 and 2.
In STP-MSPBEL, Lin and Xue [1] proved that the problem is NP-hard and presented a polynomial-time approximation algorithm by exploiting a minimum spanning tree.Let len(e) be the length of an edge e.Given an edge e i whose length is greater than the given bounded edge length R, this algorithm inserts d lenðe i Þ R e À 1 Steiner points to break the edge e i into small pieces of length at most R. Cheng et al. [3] called such edge as a steinerized edge.Given a tree, we can produce a steinerized tree for STP-MSPBEL using steinerized edges whenever the edge length exceeds the bounded edge length R. Lin and Xue [1] construct a steinerized minimum spanning tree from the minimum spanning tree of terminal points [13].They showed that this algorithm has an approximation ratio of 5. Later, Chen et al. [13] proved that the steinerized minimum spanning tree indeed has an approximation ratio of exactly 4. They also presented a 3-approximation algorithm with O(n 4 ) running time.At initialization, the algorithm adds edges between any pair of two terminal points if the distance between them is less than or equal to R. The algorithm examines all possible combinations of four terminal points from the entire set to determine if they are currently not connected and can be connected using a single Steiner point.If so, it inserts one Steiner point and four edges to connect those points and the Steiner point.After examining all subsets of four terminal points, the algorithm connects disconnected components using steinerized edges if the resulting graph is still disconnected.Cheng et al. [3] presented a 3-approximation algorithm with O(n 3 ) running time.Instead of inspecting every subset of four terminal points, they investigate all subsets of three terminal points.Moreover, they proposed a randomized algorithm to give a 2.5 approximation with a probability of at least 0.5 in poly(n, q P ) time where q P = max{q a,b,c |a, b, c 2 P} and q a,b,c is the number of Stiner points used to steinerize the optimum Steiner tree on three terminal points {a, b, c} [3].Senel and Younis [14] suggested an O(n 4 )-time algorithm to reduce Steiner points based on the Fermat point for all subsets of three terminal points.Later, they improved the algorithm with the discrete Fermat point in [15]; however, the time complexity of their algorithm to find the discrete Fermat point is not bounded because the algorithm should examine a large number of candidate points when the distance between input points is long.In summary, the best-known approximation ratio of deterministic algorithms for STP-MSPBEL has been 3 with running time O(n 3 ).
We propose an efficient approximation algorithm for STP-MSPBEL using the Voronoi diagram, a well-known geometric data structure in computational geometry.This paper extends our previous work [16].Our algorithm runs in O(n log n) time with the worst-case approximation ratio of 3, which is the same as the best-known deterministic approximation ratio and remarkably reduces the running time compared to the previous 3-approximation algorithms [3,13].In the classical Steiner tree problem, it is known that the optimal Steiner tree for the given three points can be computed in constant time by using the Fermat point [17]; however, in STP-MSPBEL, there has been no exact algorithm even for three terminal points in constant time.After we presented the exact algorithm in our preliminary paper [16], Senel and Younis [18] proposed a simpler method to find the optimal Steiner tree for three terminal points; however, this paper addresses the counterexample that shows their method indeed cannot find the optimal solution.In this paper, we present the exact algorithm to find a Steiner tree for given three points in constant time, and we propose an improved algorithm for STP-MSPBEL by using the exact algorithm.The proposed algorithm ensures a worst-case approximation ratio of 3 in O(n log n) time while achieving improved performance since we utilize the optimal solution of three terminal points.

Contributions
• We propose an efficient approximation algorithm for STP-MSPBEL using the Voronoi diagram that guarantees an approximation ratio of 3 in O(n log n) time.Previously, the bestknown deterministic algorithm has an approximation of 3 in O(n 3 ) time.The proposed algorithm remarkably reduces the running time.
• We present the first exact algorithm to provide an optimal Steiner tree for three input points in constant time.Since no exact algorithm for STP-MSPBEL has been addressed so far, we believe that our algorithm gives a good clue to finding a locally optimal solution.Moreover, it can be used to improve the performance of other approximation algorithms.
• By combining this exact algorithm and the efficient 3-approximation algorithm, we develop another 3-approximation algorithm that runs in O(n log n) time with better performance in terms of the number of required Steiner points.

Preliminaries
We briefly introduce a Voronoi diagram and the Fermat point, mainly used by the proposed algorithms.

The Voronoi diagram
Denote the Euclidean distance between two points p and q by |pq|.Let P = {p 1 , p 2 , . .., p n } be a set of n distinct points in the plane; these points are the sites.A Voronoi diagram of P denoted by VD is defined as a subdivision of the plane into n cells, one for each site in P, with the property that a point q lies in the cell corresponding to a site p i if and only if |p i q| < |p j q| for each p j 2 P with j 6 ¼ i [19].In this paper, VD indicates only the edges and vertices of the subdivisions.
The following properties hold: Property 1.A point q is a vertex of VD if and only if its latest empty circle of q as its center with respect to P contains three or more sites on its boundary.
Property 2. The bisector between sites p i and p j defines an edge of VD if and only if there is a point q on the bisector such that its latest empty circle of q as its center with respect to P contains both p i and p j on its boundary but no other site.
Under the general position assumption that no four sites lie on the same circle, each vertex of the Voronoi diagram has a degree of three which means the Voronoi vertex has equidistance to three relevant sites.The number of Voronoi vertices is at most 2n − 5, and the number of Voronoi edges is at most 3n − 6.It can be efficiently computed in O(n log n) time [20].

The Fermat point
The Fermat point (or called Torricelli point) p F of a triangle Δp a p b p c is a point such that the sum of distances from p F to each vertex (|p F p a | + |p F p b | + |p F p c |) is minimized.In the classical Steiner tree problem [21], the Fermat point is used to build the optimal Steiner tree for the given three points.There are two cases to compute the Fermat point.In one case where a triangle has an angle � 2 3 p, the Fermat point is one of the input points; precisely, the Fermat point is sited at the obtuse-angled.In the other case, the Fermat point is inside the triangle Δp a p b p c and can be found by drawing equilateral triangles on each side [17].In this case, the following property holds: Property 3. The angles subtended by the sides of the triangle at the Fermat point are all equal to 2  3 p when the Fermat point is inside the triangle.

An efficient 3-approximation algorithm
We propose an O(n log n)-time approximation algorithm with an approximation ratio of at most three by exploiting the Voronoi diagram as described in Fig  We show that the AlgA needs Steiner points no more than three times the number of Steiner points in the optimal solution in a similar way of [3,13].We briefly introduce the terminology used in the previous work.A full component of a Steiner tree is a subtree in which every Steiner point is a non-leaf node, and every input point is a leaf node.Given a Steiner tree T, C (T) denotes the number of Steiner points in T.
Lemma 2. [1].There exists a shortest length optimal Steiner tree for STP-MSPBEL such that every Steiner point has degree at most five.Lemma 3. [13].Every steinerized minimum spanning tree has the minimum number of Steiner points among steinerized spanning trees.Lemma 4. [13].Let T* be a shortest optimal tree for STP-MSPBEL with property that every Steiner point has degree at most five.Let T j be a full component of T*.Then the followings hold: (1).The steinerized minimum spanning tree on terminals in T j contains at most 3 � C(T j ) + 1 Steiner points.
(2).If T j contains a Steiner point with degree at most four, then the steinerized minimum spanning tree on terminals in T j contains at most 3 � C(T j ) Steiner points.
(3).If the steinerized minimum spanning tree on terminals in T j contains an edge between two terminals, then it contains at most 3 � C(T j ) Steiner points.
We slightly modify the lemma in [13] to apply it to our algorithm.Lemma 5. Let T* be an optimal tree for STP-MSPBEL and T A be the tree produced by AlgA.

Then C(T A ) � 3 � C(T*).
Proof.Let T S be the steinerized minimum spanning tree.Let k be the number of Steiner points inserted by AlgA in Step 3. Since each of those Steiner points combines three different connected components at once and every edge whose length is less than or equal to R in the minimum spanning tree is added in Step 2, it is obvious that By Lemma 2, we assume that T* is the shortest length optimal Steiner tree such that every Steiner point has a degree at most five.We split T* into full components T j (1 � j � N f ) where N f is the number of full components.For each full component T j , we construct corresponding steinerized minimum spanning trees T 0 j .If any full component contains at least one Steiner point whose degree is at most four, the corresponding steinerized minimum spanning tree has not more than 3 times the number of Steiner points in the full components by Lemma 4 (2).Moreover, if the distance between any pair of two points in the full component is not more than R, the corresponding steinerized minimum spanning tree requires no more than 3 times the number of Steiner points in the full components by Lemma 4 (3).Now, we consider a span- where g is the number of full components in which every Steiner point has degree 5 and the distance between any two points is greater than R. By Lemma 3, From ( 1), ( 2) and ( 3), Therefore, the approximation ratio produced by AlgA is bounded by 3 if g � k.To show that g � k, we construct two forests F 1 and F 2 .We put all input points into F 1 and F 2 each and then add edges whose length is less than or equal to R in the minimum spanning tree.Let p be the number of connected components in F 1 (= F 2 ) so far, which is the result of Step 2 of AlgA.We add k Steiner points and their induced edges to F 1 according to Step 3. The number of connected components in F 1 is equal to p − 2k.Now, we examine g full components in which every Steiner point has a degree of 5.Such components are either only one Steiner point or multiple Steiner points.In the case of components with a single Steiner point in which 5 input points are in different connected components and enclosed by a circle with a radius of R, the input points belong to at most three connected components in F 1 after Step 3. We deal with three Voronoi vertices related 5 input points in Step 3. Let us consider one of Voronoi vertices and its relevant three points.If they are in all the different components, they are connected by a Steiner point.Otherwise, at least two of the points are already connected.Then we look into another Voronoi vertex associated with two input points unrelated to the former Voronoi vertex.Similarly, at least two of these points become a part of the same component.Accordingly, we connect two pairs of input points by adding two edges in F 2 .Even though we merge them, the number of connected components in F 2 is still greater than or equal to that in F 1 .Now, we consider the other case.If the full component has more than one Steiner point, we can always find two Steiner points whose four neighbor points are input points.These four points belong to at most three connected components in F 1 after Step 3. In a similar way to the previous case, at least three points are examined for connectivity due to the associated Voronoi vertex in Step 3. A Steiner point connects them, or two of them are already connected.Even if we add two edges into F 2 to connect a pair of input points at each of two Steiner points, the number of connected components in F 2 is still greater than or equal to that in F 1 .In both cases, the number of connected components is equal to p − 2g in F 2 since we add two edges for every g full component.It satisfies that p − 2k � p − 2g.Therefore, g � k.
Lemmas 1 and 5 yield the following theorem.
Theorem 1. AlgA produces a Steiner tree in which the number of Steiner points is no more than 3 times the number of Steiner points in the optimal Steiner tree in O(n log n) time.

An exact algorithm for three input points
Given three terminal points p a , p b , and p c , we present the first exact algorithm AlgB to determine the optimal number of Steiner points for STP-MSPBEL in constant time as well as we provide one of the optimal Stiner trees.An optimal tree connecting p a , p b , and p c is formed as either a 3-star or a wedge, as shown in Fig 2 .If an optimal Steiner tree is shaped as a wedge, we can easily find the optimal tree because the steinerized minimum spanning tree becomes optimal by Lemma 3. In the other case, p a , p b , and p c are connected by a junction point p J , which is a tree in the shape of a 3-star.In this case, it is important to seek the location of p J at which R e is minimized.Since the optimal Steiner tree is formed as either a wedge, a 3-star, or both, it can be obtained by comparing the 3-star and the wedge.Since finding a steinerized minimum spanning tree is trivial for three points, the main part of AlgB aims to seek an optimal junction point.
The Fermat point p F can be a good candidate as a junction point of p a , p b , and p c because the Fermat point is defined as a point that minimizes |p a p F | + |p b p F | + |p c p F |.In STP-MSPBEL, unfortunately, p F does not always become an optimal location for the junction point, as shown in Fig 2 .Consider an equilateral triangle formed by p a , p b , and p c where each length of a side is 2.25R.The steinerized minimum spanning tree and a steinerized 3-star tree using the Fermat point require four Steiner points to satisfy bounded edge length R. The optimal Steiner tree, however, needs three Steiner points, as shown in Fig 2(c).
Let T F be a 3-star tree connecting input points p a , p b , and p c using the Fermat point p F as a junction point p J .Lemma 6.There is no steinerized 3-star tree T 3s such that C(T 3s ) Suppose that there is a steinerized 3-star tree T 3s such that C(T 3s ) < C(T F ) − 2. Let p J 0 be a junction point of T 3s .To satisfy C(T 3s ) < C(T F ) − 2, the following inequalities should hold: Since T F minimizes the sum of edge lengths, Thus, such T 3s cannot exist.Let C y x be a circle centered at a point p x with a radius of y � R. We subdivide the plane by circles centered at each input point p a , p b , and p c with various radii; we draw concentric circles C q a , C q b , and C q c , q 2 N as illustrated in Fig 4. Observation 1.When the optimal Steiner tree of three points is formed as 3-star, the optimal location of p J is inside the convex cell, which is an intersection area of C i * a , C j * b , and C k * c such that i* + j* + k* is minimized.Note that an optimal convex cell can be a single point if circles intersect at a point.
Proof.It is obvious that any point p x in C q a (or C q b , C q c ) requires at least q − 1 Steiner points to reach p a (or p b , p c ).When p x is a junction point and C i a , C j b , and C k c are the smallest circles containing p x , we need i + j + k − 2 Steiner points including p x to connect all input points.If p x is not in the convex cell, we can always find the cell in which any point p x 0 can connect p a , p b , and p c with fewer Steiner points.Suppose that the cell containing p x has at least one concave arc on its boundary and w.l.o.g., we assume that this arc is the part of circle C iÀ 1 a .Since p x is outside of C iÀ 1 a , any point p x 0 contained by C iÀ 1 a , C j b , and C k c requires one fewer Steiner points than that of p x .Therefore, an optimal junction point p J should be inside of the convex region generated by C i * a , C j * b , and C k * c such that i* + j* + k* is minimum.Based on Observation 1, it is easy to show that the optimal location of a junction point can be represented as a region rather than a single point.Therefore, we focus on searching for a convex region induced by the intersection of circles; more precisely, we search for an optimal region among convex cells in the plane subdivided by concentric circles.
Observation 2. An optimal convex cell may not be unique.
In the example of Fig 2(c), there are three cells in which we can optimally put a junction point.As the distance between terminal points increases, the number of convex regions requiring the same number of Steiner points can be highly many.Indeed, the number of optimal regions is not bounded by the input size.In this paper, we provide an algorithm to find at least one optimal convex cell to construct the Steiner tree, which requires the least number of Steiner points among all possible 3-star trees connecting p a , p b , and p c .
Observation 3. The intersection of triangle Δp a p b p c and optimal regions for the junction point of p a , p b , and p c is not empty.
Proof.Let pq be a line through two points p and q.Suppose that an optimal convex cell is completely outside of Δp a p b p c and w.l.o.g., this convex cell lies on the opposite side of p a p b from p c .The boundary of the convex cell does not consist of C k c ; k 2 N since p c is on the opposite side.If the convex cell consists of C i a and C j b , it should stab the line p a p b .Therefore, the optimal convex cells are either completely inside of Δp a p b p c or on the edges of Δp a p b p c .
We present AlgB, which provides an optimal Steiner tree for three input points as described in Fig 3 .We consider a 3-star tree first and then compare it with the minimum spanning tree.The convex region formed by the intersection of three circles C i a , C j b , and In the first phase, we aim to construct an optimal 3-star tree which induces a Steiner tree requiring the minimum number of Steiner points under the bounded edge length R among all possible 3-star trees (refer to Step 1 and 2 of AlgB in Fig 3).By Observations 1 and 3, we can find the optimal location for the junction point by checking all convex cells in Δp a p b p c .Because there could be a number of optimal regions in Δp a p b p c by Observation 2, the algorithm focuses on finding one optimal convex cell.The first phase consists of three sub-parts symmetrically in which each input point is used as a reference point.W.l.o.g., we explain the sub-part on the basis of a point p a .By Lemma 6, the number of Steiner points for an optimal 3-star tree is between i F + j F + k F − 4 and i F + j F + k F − 2 where i F ¼ d jp a p F j R e, j F ¼ d jp b p F j R e, and k F ¼ d jp c p F j R e.In the case that the optimal number of Steiner points is equal to i F + j F + k F − 2, the Fermat point becomes one of the optimal junction points.Otherwise, the algorithm searches for the convex cell CVðC i a ; We first assume that the optimal 3-star tree requires i F + j F + k F − 4 Steiner points.To figure out the existence of the target convex cell, we consider the series of particular convex cells which form We build a distance function dðj; k; d r Þ; d r 2 R that signifies the distance between p a and I a ðC Þ.Given i, j, and k, we can find the interval of δ r to satisfy the following inequality: If the intervals of δ r satisfying f(i, j, k, δ r ) � 0 include any integer value Þ is nominated for a candidate cell.If there is no convex cell satisfying i + j + k − 2 = i F + j F + k F − 4, the algorithm seeks convex cells which require i F + j F + k F − 3 Steiner points in the same manner.
For easy representation, we use the similarity transform by setting p b = (0, 0) and p c = (1, 0).The scale factor of the transform is 1 jp b p c j .Accordingly, p a is transformed to p 0 a ¼ ðx a ; y a Þ and bounded edge length R becomes R 0 ¼ R jp b p c j .For given j and k, the coordinate of transformed 2 and y i ¼ ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi . Now, we rewrite the function f(i, j, k, δ r ) in (4) as follows.
ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi By substituting d 0 r À jþk 2 þ 1 2R 0 for δ r , we can rewrite the function f 0 (i, j, k, δ r ) as follows: ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffiffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi ffi where a ¼ ðjÀ kÞR 0 þ1 2 and t is the desired number of Steiner points.Note that t is initially set to i F + j F + k F − 4 and later is set to i F + j F + k F − 3. We can solve Eq (6) by the quartic formula since f 0 ði; j; k; d 0 r Þ is of quartic form of d 0 r for given i, j, and k.We calculate the valid interval of δ r from d 0 r satisfying inequality (7).If we find an integer value d * z in the valid interval of δ r , Once we set the desired number of Steiner points t, we should investigate Þ with all possible combinations of j and k.In this paper, we reveal that only four pairs of j and k are enough to find the optimal cell for each of the two i values in each sub-part.In other words, instead of checking all convex cells, we solve Eq (6) at most 8 times in each sub-part with the parameters below.W.l.o.g., we assume that we regard p b as p c and p c as p b .In the case that the target number of Steiner points t is i F + j F + k F − 4, we assign a set of parameters for Eq (6) If there exists any convex cell satisfying the condition, the convex cell becomes the optimal solution for the 3-star tree.Otherwise, we increase the i value of the above set of parameters by 1 and solve the equations again in order to examine whether there exists a 3-star tree requiring i F + j F + k F − 3 Steiner points.If there is still no convex cell satisfying the condition, CVðC i F a ; C j F b ; C k F c Þ becomes the optimal solution for the 3-star tree.
In the second phase, we construct the minimum spanning tree T MST of terminal points as described in Step 3. If the number of required Steiner points of T MST is less than that of the optimal 3-star tree T 3S , we return steinerized T MST as an optimal Steiner tree for the three terminal points.Otherwise, we return steinerized T 3S .Now, we prove that the result tree of AlgB is an optimal Steiner tree for STP-MSPBEL given three terminal points.We begin by demonstrating that the steinerized 3-star tree, as generated through Step 2, demands the fewest Steiner points compared to all possible 3-star trees connecting terminal points.This is achieved by comparing the candidate convex cell produced by Þ is the candidate cell for the junction point of a 3-star tree as the result of AlgB.
Proof.In region 1, a convex cell f0; 1; 2g; d2 2 f0; 1; 2g are investigated by Inequality (7) with f0; 1; 2g; d2 2 f0; 1; 2g are checked in Step 2-2 and 2-3 respectively.Consequently, all convex cells are investigated in CVðC i F a ; C j F b ; C k F c Þ by AlgB.To prove Lemmas 8 and 9, we partition the plane into six wedges centered around the Fermat point p F using the lines p a p F , p b p F , and p c p F .Note that each wedge has an interior angle of Þ exists where δ N < i/2, and i; j; k; d N 2 N. Proof.Given a convex cell, we consider two cases: the first case is when one of vertices of the convex cell is closer to p a ðI a ðC j b ; C k c Þ 2 Dp a p b p c Þ and the second case is when the closest point to p a is on the boundary.In the first case, we use Þ by solving Inequality (7) in Step 2-1.We prove that there is no better cell in region 2 by comparing it with these four convex cells.
Lastly, we prove that there is no better convex cell in regions 5, 6, and 7 than the candidate cell.W.l.o.g., we show the case of region 5.

Lemma 11. No convex cell CVðC
Þ is the candidate cell as the result of AlgB.Proof.HB b,c (p F ) is tangent to p a p F at p F as explained in Lemma 10.Since the algorithm investigates all convex cells of which one of vertices is on ÞÞ by Lemma 9 with a slight modification.Theorem 2. Given 3 input points, AlgB computes an optimal Steiner tree for STP-MSPBEL in constant time.
Proof.It is obvious that AlgB takes constant time.We can compute the Fermat point in constant time in Step 1.In Step 2, we solve Eq (6) at most 8 times for each sub-part.Finally, in Step 3, the minimum spanning tree of three points can also be constructed in constant time.Now, we show that the result steinerized tree is optimal for STP-MSPBEL.There are two ways to connect three terminal points with minimum Steiner points: one is to connect three points with a junction point, and the other is to connect two pairs of input points directly.Through Step 2, the algorithm presents the optimal 3-star tree among all possible 3-star trees connecting input points.By Observations 1 and 3, at least one optimal convex cell for a junction point intersects with Δp a p b p c .By Lemmas 9, 10, and 11, we have shown that the result convex cell of the algorithm is better than or equal to other convex cells in Δp a p b p c .Therefore, an optimal 3-star Steiner tree can be constructed by putting the junction point in the result convex cell and connecting input points with the minimum number of Steiner points.Since the algorithm computes the minimum spanning tree in Step 3, the optimal Steiner tree for STP-MSPBEL is presented by comparing those two trees.
We argue that the optimal location for the junction point may not be found although investigating all intersection points among which implies that the method in [18] cannot provide the optimal Steiner tree for three points.
Þ is greater than 2; however,the distance between p a and I a ðC Þ is , it requires at least 2102 Steiner points.In addition, the steinerized minimum spanning tree needs 2102 Steiner points.

A combined algorithm
In this section, we develop another 3-approximation algorithm by combining the exact algorithm AlgB and the approximation algorithm AlgA to further reduce the number of required Steiner points in O(n log n) time.As described in Fig 9, AlgC computes the minimum spanning tree (MST) of terminal points and sorts MST edges by the number of required Steiner points in ascending order.Next, AlgC constructs the Voronoi diagram of the set of terminal points as sites and calculates the number of Steiner points required at each Voronoi vertex to connect its relevant 3 terminal points by AlgB.Then, the algorithm sorts the Voronoi vertices by the number of required Steiner points.Let E MST (i) be a set of MST edges requiring i Steiner points and V VD (j) be a set of Voronoi vertices requiring j Steiner points.By looking up the sorted lists of MST edges and Voronoi vertices, we are able to construct a steinerized spanning tree.We process an edge case or a vertex case by the following rules: Rule 1. E MST (i) is processed before V VD (j) where i < dj/2e.Rule 2. V VD (j) is processed before E MST (i) where j � 2i.In the edge case, if two endpoints are not in the same component, we steinerize the edge and add it to the resulting tree.In the vertex case, if three relevant terminal points of the Voronoi vertex are not in the same component, we add Steiner points and relevant edges into the resulting tree by AlgB.For example, at first, we add all MST edges in E MST (0) by Rule 1, and then we look at the Voronoi vertices in V VD (1) and V VD (2) by Rule 2. Iteratively, we increase the result tree size by processing with E MST (i), V VD (2i + 1), and V VD (2i + 2).The basic idea behind this strategy is that if three points are in different connected components after adding edges in E MST (i), at least 2(i + 1) Steiner points are required to connect those three components by MST edges.Thus, it is beneficial to use the vertex case if V VD (2i + 1) or V VD (2i + 2) connects those three points.If three points are already in the same connected component before V VD (j) are considered, the bottleneck of the path between any of two points is less than or equal to dj/2e − 1.Thus, Despite removing the two bottleneck edges, the result tree deteriorates when Steiner points are inserted based on V VD (j).Voronoi vertices in the sorted lists.Since each connectivity query takes O(log n) time, the overall time complexity is bounded by O(n log n).The performance of AlgC is better than or equal to that of AlgA.AlgC first processes with E(0) and V (1).The resulting tree (forest) is exactly the same as the result of AlgA after processing Step 3. In the context of AlgC, Steiner points are introduced through the vertex case exclusively if the spanning tree established by AlgB outperforms the tree formed by steinerized edges of the minimum spanning tree.Consequently, AlgC produces a spanning tree that requires an equal or fewer number of Steiner points than that of AlgA.

Conclusion
We present approximation algorithms for the Steiner tree problem with the minimum number of Steiner points and bounded edge length.Previously, the best-known deterministic approximation algorithm has O(n 3 ) running time with an approximation ratio of 3. In this paper, we propose O(n log n)-time approximation algorithm with the same approximation ratio, significantly improving the time complexity.Additionally, to enhance performance, we introduce the first exact algorithm that can provide an optimal Steiner tree for any given three points in constant time.By using this exact algorithm, we develop another 3-approximation algorithm that runs in O(n log n) time with better performance in terms of the number of required Steiner points.
2 and 4 take O(n log n) time.The Voronoi diagram of n sites in the plane can be constructed in O(n log n) time [4].Since the number of vertices in the Voronoi diagram is at most 2n − 5 in 2D, Step 3 also takes in O(n log n) time.Overall, AlgA takes O(n log n) time.

Fig 2 .
Fig 2. Black dots represent input terminal points p a , p b , and p c .Empty dots represent Steiner points.(a) the steinerized minimum spanning tree requires 4 Steiner points (b) the steinerized 3-star tree using the Fermat point requires 4 Steiner points (c) the optimal Steiner tree for STP-MSPBEL requires 3 Steiner points.A junction point can be optimally placed in any of 3 shaded regions.https://doi.org/10.1371/journal.pone.0294353.g002 be the intersection point of C j b and C k c that lies on the same side of p b p c as p a or on p b p c , in other words, the intersection point closer to p a .

AlgB 7 .
with all convex cells that are in the triangle Δp a p b p c or intersect with the boundary of the triangle Δp a p b p c .We partition the triangle Δp a p b p c into seven distinct regions, delineated by C i F a , C j F b , and C k F c as illustrated in Fig 4. Subsequently, we investigate convex cells within each respective region.First, we look into region 1, the intersection area of C i F a , C j F b , and C k F c , which indicates the smallest convex cell containing the Fermat point.Lemma No convex cell CVðC i a ; C j b

Fig 4 .
Fig 4. The optimal location for a junction point of a 3-star tree can be identified within the convex cells formed by concentric circles centered at each terminal point.The triangle Δp a p b p c is partitioned into 7 regions by C i F a , C j F b , and C k F c .https://doi.org/10.1371/journal.pone.0294353.g004 and p Iþ1 ¼ I a ðC jþ1 b ; C kþ1 c Þ which implies that p I+1 cannot be contained by C iÀ 2 a unless p I lies inside C i a .As depiced in Fig 6, we denote l = |p I p I+1 | as the distance between p I and p I+1 .If l � 2R, ffp b p I p Iþ1 < 2 3 p (see Fig 6(b)).Since p I 2 W 1 [ W 2 , ffp b p I p c < 2 3 .Thus, it should hold that ffp b p I p Iþ1 þ ffp c p I p Iþ1 > 4 3 p.It implies that l < 2R.l + |p a p I+1 | � |p a p I | by triangle inequality.It holds that |p a p I+1 | � |p a p I | − l � |p a p I | − 2R.Consequently, CVðC iÀ 2d N a ; C jþd N b ; C kþd N c Þ does not exist.Let EP b,c (p x ) be the ellipse through a point p x with two focal points p b and p c (see Fig 5).Let HB b,c (p x ) be the p c -side curve of the hyperbola with two focal points p b and p c through a point p x .

Fig 5 . 6 Lemma 9 .
Fig 5. 6 wedges (W 1 , � � �, W 6 ) are delineated by lines p a p F , p b p F , and p c p F (thick lines).I a ðC j F b ; C k F À 1 c Þ denotes an intersection point of circles C j F b and C k F À 1 c , positioned closer to p a .Dotted curves represent an ellipse EP b;c ðI a ðC j F b ; C k F À 1 c ÞÞ and a hyperbola HB b;c ðI a ðC j F b ; C k F À 1 c ÞÞ with two focal points p b and p c through a point I a ðC j F b ; C k F À 1 c Þ. https://doi.org/10.1371/journal.pone.0294353.g005 exists.Proof.We consider a circle C iþ� a centered at p a with a radius of ði þ �ÞR ¼ jp a I a ðC j b ; C k c Þj and an ellipse EP a;c ðI b ðC iþ� a ; C j b ÞÞ as illustrated in Fig 7. Note that I a ðC j b ; C k c Þ ¼ I b ðC iþ� a ; C k c Þ.When one of the intersection points of the ellipse and the circle lies inside of W 1 , the other intersection point is located in W 2 [ W 3 [ W 4 since |p b p F | � j � R. It implies that I a ðC j b ; C kþd c Þ 2 Dp a p b p c ; d > 0 is outside of EP a;c ðI b ðC iþ� a ; C k c ÞÞ as well as EP a;c ðI b ðC iÀ d a ; C kþd c ÞÞ. Thus, CVðC iÀ d N a ; C j b ; C kþd N c Þ does not exist unless I a ðC j b ; C k c Þ 2 C i a .Now, we look into the cells in regions 2, 3, and 4. W.l.o.g., we show that there is no better convex cell compared to the candidate cell of the algorithm in region 2. We assume that |p b p F | � |p c p F | for the proof of Lemmas 10 and 11.Lemma 10.No convex cell CVðC i a ; C j b EP b,c (p F ) is tangent to the circle centered at p a with a radius of |p a p F | and tangent lines of EP b,c (p F ) and HB b,c (p F ) are orthogonal at a point p F .Thus, p a p F becomes a tangent line of HB b, c (p F ) at p F and HB b,c

, d N 2 N
By Lemma 9, convex cells composed by C k F c and C j F þ1þd N b require at least the same number of Steiner points as that of the convex cell consisting of C j F þ1 b and C

Fig 6 .
Fig 6.(a) The distance l between the intersection point p I ¼ I a ðC j b ; C k c Þ of C j b and C k c , and p Iþ1 ¼ I a ðC jþ1 b ; C kþ1 c Þ. (b) For l � 2R, the angle ff p b p I p Iþ1 is strictly less than 2 3 p.https://doi.org/10.1371/journal.pone.0294353.g006 and j − k > j F − k F + 1.If an ellipse with two focal points p b and p c intersects with C i a ; i > i F at a single point, the point is in the same side of HB b,c (p F ) as p c .When the ellipse intersects with C i a ; i > i F at two points, if one intersection point is on the same side of HB b,c (p F ) as p b , the other intersection point should be in the opposite side of HB b,

Fig 7 .
Fig 7. When one of intersection points between EP b,c (p x ) and C j b where j � R > |p b p F | lies inside of W 1 , the other point is inside of W 2 [ W 3 [ W 4 if it exists inside of the triangle.https://doi.org/10.1371/journal.pone.0294353.g007 The counterexample exists when |p a p F | is short, and both |p b p F | and |p c p F | are relatively long.As shown in Fig 8, we set R = 1, |p a p F | = 1.739, |p b p F | = 1100.95and |p c p F | = 1000.3007.Then, the distance between p a and I a ðC j F

Fig 8 .
Fig 8.The location of a junction point for an optimal 3-star tree can be found outside of C i F þ1 a when R = 1, | p a p F | = 1.739, |p b p F | = 1100.95and |p c p F | = 1000.3007.It shows that none of the intersection points between C i F a , C i F À 1

1 b; C k F À 2 c 1 cÞ.
and C k F À 1 c might yield the optimal junction point location.https://doi.org/10.1371/journal.pone.0294353.g008less than 4. Thus, if the junction point is located at I a ðC j F À Þ, it requires 2101 Stiner points which is one less than that using I a ðC j F b ; C k F À If the junction point is located at any intersection points among

Theorem 3 .
AlgC provides the Steiner tree T C satisfying C(T C ) � C(T A ) in O(n log n) time where T A is the Steiner tree produced by AlgA.Proof.It is straightforward that AlgC takes O(n log n) time.Since AlgB takes constant time, Step 1 and 2 of AlgC takes O(n log n) time.In Step 3, there are n − 1 MST edges and the O(n)

Fig 1. AlgA: An efficient 3-approximation algorithm.
[3,13] precisely, it takes O (n log n) time to determine the number of Steiner points.It takes O(n log n + S) to report the locations of Steiner points where S is the number of Steiner points in the optimal Steiner tree for STP-MSPBEL since the algorithm produces no more than three times the number of Steiner points in the optimal Steiner tree.Indeed, the number of Steiner points S is independent of the number of terminal points n.Similar to the previous works[3,13], this paper does not consider the cost of making steinerized edges when analyzing algorithms.We first compute a minimum spanning tree and sort the edges in increasing order in Step 1.If the length of the edge is we insert the edge into the result tree in Step 2. If several connected components still remain after adding edges, it requires Steiner points to connect those components.In Step 3, we construct a Voronoi diagram of the terminal points as sites.At each Voronoi vertex, we investigate its three relevant sites, {p a , p b , p c } 2 P, to determine whether these points are in different connected components and whether the radius of the smallest enclosing circle of three sites is less than R. If so, we add one Steiner point at the center of the circle and insert three edges to connect relevant terminal points from the Steiner point.The center of the smallest enclosing circle for p a , p b , and p c is located at the Voronoi vertex when the triangle Δp a p b p c is not an obtuse triangle by property 1.If Δp a p b p c is an obtuse triangle, the center of the smallest enclosing circle is located at the middle of the longest side of Δp a p b p c .Note that if the Voronoi vertex is associated with more than three sites, the same approach can be applied using the same Voronoi vertex.Lastly, if two endpoints of the edges in the minimum spanning tree are in different connected components, we steinerize the edge and insert it into the result tree in Step 4. Now, we analyze the time complexity and performance of the proposed algorithm.
2 and i; j; k; d z 2 Z.When j and k are given, we check whether there exists δ z satisfying that CVðC iÀ 2d z Since the algorithm investigates HB b;c ðI a ðC j F À 1 b ; C k F c ÞÞ and HB b;c ðI a ðC j F À 2